package Main;

import java.util.ArrayList;

/**
 * 
 * The generic Search problem contains 5 tuples, an initial state of type
 * Object, the operators of the type Operators, stateSpace of type Arraylist of
 * Objects, the pathcost of type int and the goalTest of type GoalTest
 * 
 */

public class GenericSearchProblem {

	Object initialstate;
	Operators operators;
	ArrayList<Object> stateSpace;
	int pathCost;
	GoalTest goalTest;

	/**
	 * Initializes the search problem with the initial state, the operators, and
	 * the goalTest
	 * 
	 * @param initialState
	 * @param operators
	 * @param goalTest
	 * 
	 * 
	 */
	public GenericSearchProblem(Object initialState, Operators operators,
			GoalTest goalTest) {
		this.initialstate = initialState;
		this.goalTest = goalTest;
		this.operators = operators;

	}

	public Object getInitialstate() {
		return initialstate;
	}

	public void setInitialstate(Object initialstate) {
		this.initialstate = initialstate;
	}

	public Operators getOperators() {
		return operators;
	}

	public void setOperators(Operators operators) {
		this.operators = operators;
	}

	public ArrayList<Object> getStateSpace() {
		return stateSpace;
	}

	public void setStateSpace(ArrayList<Object> stateSpace) {
		this.stateSpace = stateSpace;
	}

	public int getPathCost() {
		return pathCost;
	}

	public void setPathCost(int pathCost) {
		this.pathCost = pathCost;
	}

	public GoalTest getGoalTest() {
		return goalTest;
	}

	public void setGoalTest(GoalTest goalTest) {
		this.goalTest = goalTest;
	}

}
